舉凡寫code當然是先從HELLO WORLD!開始阿!但前提是沒有外接任何顯示板的情況下,光靠硬體沒辦法看到結果,所以就想說借助Arduino的力量,就當個教學篇,用Arduino IDE寫程式跑在這塊板子上。讓我來帶大家認識這塊MCU吧!
這次用的這塊開發版是 Nucleo-64 L053R8,官方網站有比較詳細的說明可以參考看看。它擁有相容於 Aruduino Uno V3的接腳, 8K SRAM, 64KB Flash 與 ARM Cortex M0+ 處理器。下面是STM32L053R8這顆MCU它的Circuit Diagram。
圖源:https://www.st.com/en/microcontrollers-microprocessors/stm32l053r8.html
可能常常會聽到電腦CPU頻率幾GHz啊,大多數電腦CPU頻率,都在2Ghz以上,通常是越高越好。而微處理器的頻率視用途決定大小,通常會落在kHz~MHz之間不等,這顆MCU就上看32MHz。
同時DMIPS(Dhrystone Million Instructions executed Per Second)指的是每秒執行了多少百萬條指令。
64 KB Flash就是你擺程式的地方,8KB SRAM就是你的記憶體,可以去算算8KB真的很小,可能連一張圖片都塞不進去,但別擔心以現階段來說是夠用的,原廠不會故意配一個很小的記憶體讓你不夠用。
它有51個GPIO能使用,GPIO(General-purpose input/output)通用型之輸入輸出的簡稱,然後它有12位元ADC、DAC可以做類比數位兩者交互的轉換,Timers可以用來計數、數數它都可以做。支援一些SPI, I2C, USART...等等的通訊協定跟其他模組溝通。
這是內部結構的方塊圖,它裡面包括其實有很多GPIO、bus、記憶體...等等。未來在寫程式都還會再回來提到,先有一個概念這樣。
為了能讓 STM32 在 Arduino IDE 的環境底下工作,我們需要安裝一個稱為 STM32duino 的專案,這個專案可以讓我們在 STM32 上跑 Arduino 的程式,這樣便能編譯程式。最後再安裝 ST-Link 燒錄器驅動/工具,便能將編譯後的程式燒入板子。
上篇提及的NUCLEO-L053R8開發板上方就是燒錄器,只需要一條mini USB就可以執行燒錄了。先去官方網站下載ST-Link 主程式
下載完就執行它!
原則上應該都是一直按下一步到底
按 NEXT
按 YES
按 NEXT
安裝過程中應該會叫你安裝驅動程式,給它裝下去就對了!
信任並安裝驅動程式
驅動安裝完成!
燒錄器安裝完成!
ST-Link 驅動程式可以在這裡下載,辦個帳號即可下載,不想辦號可以直接填你的姓名和電郵,之後就會把下載連結寄去你信箱。像這樣。
下載完打開en.stsw-link009壓縮檔,執行dpinst_amd64.exe安裝驅動程式
原則上一直下一步就行,中間還會遇到幾個 Driver 問你要不要安裝,記得先勾選左下的選擇信任再安裝。安裝完成後就可以開始連接了。
更新驅動程式之前
記得先把JP5從原本靠左邊E5V的地方差到靠右邊U5V的位置
插上USB線(Type-A to Mini-B)一端接主板另一端插電腦上 LD1和LD3應該就會亮喔!
如果沒有調整JP5的位置,LD3是不會亮的,這點必須注意。
JP5調整前-JP5在12位置,靠向E5V
JP5調整後-JP5在23位置,靠向U5V
完成後接上USB線連接電腦,右上LD1、正中間靠左LD3將會發亮,電腦會跳出偵測到裝置的通知
打開剛剛安裝在桌面的ST-LINK
1.點選Target
2.Connect與開發板連接
~這可能會需要一些時間
(注意!連接期間不可按下主板上的RESET鈕,否則會連接失敗!)
如果你跟我一樣跳出錯誤訊息,別緊張可以試著按照提示設置connect under reset的模式,基本可以解決大部分問題。
到Target->Settings,將Mode設置connect under reset的模式,按OK。
看到這個畫面就代表成功連接了!
原廠出貨到第一次使用期間可能燒錄器已經有新的更新了,但你的燒錄器的韌體可能還是舊版本,反正到時候使用他還是會叫你更新,不如一開始就先更新。相對也比較穩定。
1.點選Target
2.Firmware update
Device Connect
連接的當下直到更新結束,更新程式會強制佔有 ST LINK 燒錄器,其他應用程式將無法訪問它直到更新結束。
自動偵測目前韌體的版本和開發環境,以及即將更新的版本,YES大力的按下去!
出現Upgrade is successful就代表更新成功摟!
這應該不用我說了吧,Arduino IDE 在官方網頁下載,當前發文的版本是1.8.13,下載完直接下一步到底。中間會問幾個 Driver 要不要安裝,也是選擇信任再安裝。
STM32DUINO能讓我們在stm32上跑Arduino的程式。打開 Arduino 並連接網路 (廢話)
接下來要將 STM32duino 的開發板網址加到進管理頁面。開啟 檔案–> 偏好設定,將下列網址貼上
https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.js
開啟 工具–>開發板–>開發板管理員。在搜尋列內打上 STM32 Core 並選擇1.4.0 版安裝。 此時就會開始下載 STM32 相關的資訊和檔案,稍候完成安裝。
等候的同時可以看到這個套件包含的開發板非常之多,厲害了吧!哈哈。
安裝完成之後,選擇你的開發板就可開始code了!
1.工具–>開發板 選擇 Nucleo-64
2.工具–>Part number 選擇 Nucleo L053R8
3.工具–>Upload method選擇 STLINK
終於寫到這裡了哈哈。
編譯+上傳,應該就會一直印出HELLO WORLD了
#include <Arduino.h>
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
while (!Serial);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Hello! World!");
}
- STM32 Nucleo-64 boards (MB1136)資料手冊
https://www.st.com/resource/en/user_manual/dm00105823-stm32-nucleo-64-boards-mb1136-stmicroelectronics.pdf- STM32L053R8 datasheet
https://www.st.com/resource/en/datasheet/stm32l053r8.pdf- ARM Mbed官網介紹 - NUCLEO-L053R8
https://os.mbed.com/platforms/ST-Nucleo-L053R8/- STM32 官網介紹 - STM32L053R8
https://www.st.com/en/microcontrollers-microprocessors/stm32l053r8.html#overview
- 此開發板售價在臺幣1000元以下,讀者可於以下網站購得:
https://www.mouser.tw/
https://www.digikey.tw/
第3天開始混了?啥?
我的布丁不知道被誰吃掉了。可惡。